From ff7e4d5f080bef4156d5bf605746028e1e1d2690 Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Thu, 3 Feb 2005 09:11:33 +0000 Subject: [PATCH] bitkeeper revision 1.1159.212.76 (4201eac5AlEp4jSQYKA8-oSf0N15pQ) Add xmalloc_bytes() to the allocator API. Signed-off-by: keir.fraser@cl.cam.ac.uk --- xen/arch/x86/microcode.c | 2 +- xen/arch/x86/pci-pc.c | 2 +- xen/include/asm-x86/shadow.h | 4 ++-- xen/include/xen/slab.h | 10 ++++++++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c index aa2966688e..d811e7ed70 100644 --- a/xen/arch/x86/microcode.c +++ b/xen/arch/x86/microcode.c @@ -84,7 +84,7 @@ #define DECLARE_MUTEX(_m) spinlock_t _m = SPIN_LOCK_UNLOCKED #define down(_m) spin_lock(_m) #define up(_m) spin_unlock(_m) -#define vmalloc(_s) ((void *)xmalloc(u8[_s])) +#define vmalloc(_s) xmalloc_bytes(_s) #define vfree(_p) xfree(_p) #define num_online_cpus() smp_num_cpus static inline int on_each_cpu( diff --git a/xen/arch/x86/pci-pc.c b/xen/arch/x86/pci-pc.c index 09f562655b..177cc0a851 100644 --- a/xen/arch/x86/pci-pc.c +++ b/xen/arch/x86/pci-pc.c @@ -1036,7 +1036,7 @@ struct irq_routing_table * __devinit pcibios_get_irq_routing_table(void) if (ret & 0xff00) printk(KERN_ERR "PCI: Error %02x when fetching IRQ routing table.\n", (ret >> 8) & 0xff); else if (opt.size) { - rt = (struct irq_routing_table *)xmalloc(u8[sizeof(struct irq_routing_table) + opt.size]); + rt = xmalloc_bytes(sizeof(struct irq_routing_table) + opt.size); if (rt) { memset(rt, 0, sizeof(struct irq_routing_table)); rt->size = opt.size + sizeof(struct irq_routing_table); diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h index fa518baff7..9705e9ebfa 100644 --- a/xen/include/asm-x86/shadow.h +++ b/xen/include/asm-x86/shadow.h @@ -616,8 +616,8 @@ static inline void set_shadow_status( { SH_LOG("Allocate more shadow hashtable blocks."); - extra = (struct shadow_status *)xmalloc( - u8[sizeof(void *) + (shadow_ht_extra_size * sizeof(*x))]); + extra = xmalloc_bytes( + sizeof(void *) + (shadow_ht_extra_size * sizeof(*x))); /* XXX Should be more graceful here. */ if ( extra == NULL ) diff --git a/xen/include/xen/slab.h b/xen/include/xen/slab.h index 68d0ba00fb..d340651bac 100644 --- a/xen/include/xen/slab.h +++ b/xen/include/xen/slab.h @@ -53,11 +53,17 @@ extern int xmem_cache_reap(void); extern void dump_slabinfo(); -/* Nicely typesafe for you. */ -#define xmalloc(_type) ((typeof(_type) *)_xmalloc(sizeof(_type))) +/* Allocate space for typed object. */ +#define xmalloc(_type) ((_type *)_xmalloc(sizeof(_type))) + +/* Allocate space for array of typed objects. */ #define xmalloc_array(_type, _num) \ ((_type *)(((_num) > (UINT_MAX / sizeof(_type))) ? \ NULL : _xmalloc((_num) * sizeof(_type)))) + +/* Allocate untyped storage. */ +#define xmalloc_bytes(_bytes) (_xmalloc(_bytes)) + #endif /* __ARCH_HAS_SLAB_ALLOCATOR */ #endif /* __SLAB_H__ */ -- 2.30.2